
<!doctype html>
<html lang="en" class="no-js">
  <head>
    
      <meta charset="utf-8">
      <meta name="viewport" content="width=device-width,initial-scale=1">
      
      
      
      <link rel="icon" href="../static/images/favicon.png">
      <meta name="generator" content="mkdocs-1.3.0, mkdocs-material-8.2.8">
    
    
      
        <title>基于多年云平台架构开发运维经验沉淀笔记 - WL4G DOCS</title>
      
    
    
      <link rel="stylesheet" href="../assets/stylesheets/main.644de097.min.css">
      
        
        <link rel="stylesheet" href="../assets/stylesheets/palette.e6a45f82.min.css">
        
      
    
    
    
      
        
        
        <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
        <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback">
        <style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
      
    
    
      <link rel="stylesheet" href="../static/css/util.css">
    
    <script>__md_scope=new URL("..",location),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
    
      

    
    
  </head>
  
  
    
    
      
    
    
    
    
    <body dir="ltr" data-md-color-scheme="default" data-md-color-primary="" data-md-color-accent="">
  
    
    
      <script>var palette=__md_get("__palette");if(palette&&"object"==typeof palette.color)for(var key of Object.keys(palette.color))document.body.setAttribute("data-md-color-"+key,palette.color[key])</script>
    
    <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
    <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
    <label class="md-overlay" for="__drawer"></label>
    <div data-md-component="skip">
      
        
        <a href="#_1" class="md-skip">
          Skip to content
        </a>
      
    </div>
    <div data-md-component="announce">
      
    </div>
    
      <div data-md-component="outdated" hidden>
        <aside class="md-banner md-banner--warning">
          
        </aside>
      </div>
    
    
      

<header class="md-header" data-md-component="header">
  <nav class="md-header__inner md-grid" aria-label="Header">
    <a href=".." title="WL4G DOCS" class="md-header__button md-logo" aria-label="WL4G DOCS" data-md-component="logo">
      
  <img src="../static/images/mylogo.jpeg" alt="logo">

    </a>
    <label class="md-header__button md-icon" for="__drawer">
      <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg>
    </label>
    <div class="md-header__title" data-md-component="header-title">
      <div class="md-header__ellipsis">
        <div class="md-header__topic">
          <span class="md-ellipsis">
            WL4G DOCS
          </span>
        </div>
        <div class="md-header__topic" data-md-component="header-topic">
          <span class="md-ellipsis">
            
              基于多年云平台架构开发运维经验沉淀笔记
            
          </span>
        </div>
      </div>
    </div>
    
      <form class="md-header__option" data-md-component="palette">
        
          
          
          <input class="md-option" data-md-color-media="(prefers-color-scheme: light)" data-md-color-scheme="default" data-md-color-primary="" data-md-color-accent=""  aria-label="Switch to dark mode"  type="radio" name="__palette" id="__palette_1">
          
            <label class="md-header__button md-icon" title="Switch to dark mode" for="__palette_2" hidden>
              <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M17 6H7c-3.31 0-6 2.69-6 6s2.69 6 6 6h10c3.31 0 6-2.69 6-6s-2.69-6-6-6zm0 10H7c-2.21 0-4-1.79-4-4s1.79-4 4-4h10c2.21 0 4 1.79 4 4s-1.79 4-4 4zM7 9c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z"/></svg>
            </label>
          
        
          
          
          <input class="md-option" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-scheme="slate" data-md-color-primary="" data-md-color-accent=""  aria-label="Switch to light mode"  type="radio" name="__palette" id="__palette_2">
          
            <label class="md-header__button md-icon" title="Switch to light mode" for="__palette_1" hidden>
              <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M17 7H7a5 5 0 0 0-5 5 5 5 0 0 0 5 5h10a5 5 0 0 0 5-5 5 5 0 0 0-5-5m0 8a3 3 0 0 1-3-3 3 3 0 0 1 3-3 3 3 0 0 1 3 3 3 3 0 0 1-3 3z"/></svg>
            </label>
          
        
      </form>
    
    
      <div class="md-header__option">
        <div class="md-select">
          
          <button class="md-header__button md-icon" aria-label="Select language">
            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m12.87 15.07-2.54-2.51.03-.03A17.52 17.52 0 0 0 14.07 6H17V4h-7V2H8v2H1v2h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04M18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12m-2.62 7 1.62-4.33L19.12 17h-3.24z"/></svg>
          </button>
          <div class="md-select__inner">
            <ul class="md-select__list">
              
                <li class="md-select__item">
                  <a href="/en/" hreflang="en" class="md-select__link">
                    English
                  </a>
                </li>
                
                <li class="md-select__item">
                  <a href="/zh/" hreflang="zh" class="md-select__link">
                    简体中文
                  </a>
                </li>
                
            </ul>
          </div>
        </div>
      </div>
    
    
      <label class="md-header__button md-icon" for="__search">
        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5z"/></svg>
      </label>
      <div class="md-search" data-md-component="search" role="dialog">
  <label class="md-search__overlay" for="__search"></label>
  <div class="md-search__inner" role="search">
    <form class="md-search__form" name="search">
      <input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
      <label class="md-search__icon md-icon" for="__search">
        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5z"/></svg>
        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12z"/></svg>
      </label>
      <nav class="md-search__options" aria-label="Search">
        
        <button type="reset" class="md-search__icon md-icon" aria-label="Clear" tabindex="-1">
          <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z"/></svg>
        </button>
      </nav>
      
        <div class="md-search__suggest" data-md-component="search-suggest"></div>
      
    </form>
    <div class="md-search__output">
      <div class="md-search__scrollwrap" data-md-scrollfix>
        <div class="md-search-result" data-md-component="search-result">
          <div class="md-search-result__meta">
            Initializing search
          </div>
          <ol class="md-search-result__list"></ol>
        </div>
      </div>
    </div>
  </div>
</div>
    
    
  </nav>
  
</header>
    
    <div class="md-container" data-md-component="container">
      
      
        
          
            
<nav class="md-tabs" aria-label="Tabs" data-md-component="tabs">
  <div class="md-tabs__inner md-grid">
    <ul class="md-tabs__list">
      
        
  
  


  
  
  
    <li class="md-tabs__item">
      <a href=".." class="md-tabs__link">
        Getting Started
      </a>
    </li>
  

      
    </ul>
  </div>
</nav>
          
        
      
      <main class="md-main" data-md-component="main">
        <div class="md-main__inner md-grid">
          
            
              
              <div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
                <div class="md-sidebar__scrollwrap">
                  <div class="md-sidebar__inner">
                    

  


  

<nav class="md-nav md-nav--primary md-nav--lifted md-nav--integrated" aria-label="Navigation" data-md-level="0">
  <label class="md-nav__title" for="__drawer">
    <a href=".." title="WL4G DOCS" class="md-nav__button md-logo" aria-label="WL4G DOCS" data-md-component="logo">
      
  <img src="../static/images/mylogo.jpeg" alt="logo">

    </a>
    WL4G DOCS
  </label>
  
  <ul class="md-nav__list" data-md-scrollfix>
    
      
      
      

  
  
  
    
    <li class="md-nav__item md-nav__item--nested">
      
      
        <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_1" data-md-state="indeterminate" type="checkbox" id="__nav_1" checked>
      
      
      
      
        <label class="md-nav__link" for="__nav_1">
          Getting Started
          <span class="md-nav__icon md-icon"></span>
        </label>
      
      <nav class="md-nav" aria-label="Getting Started" data-md-level="1">
        <label class="md-nav__title" for="__nav_1">
          <span class="md-nav__icon md-icon"></span>
          Getting Started
        </label>
        <ul class="md-nav__list" data-md-scrollfix>
          
            
              
  
  
  
    <li class="md-nav__item">
      <a href=".." class="md-nav__link">
        Introduction
      </a>
    </li>
  

            
          
            
              
  
  
  
    <li class="md-nav__item">
      <a href="../ABOUT_CN/" class="md-nav__link">
        About
      </a>
    </li>
  

            
          
        </ul>
      </nav>
    </li>
  

    
  </ul>
</nav>
                  </div>
                </div>
              </div>
            
            
          
          <div class="md-content" data-md-component="content">
            <article class="md-content__inner md-typeset">
              
                


<h1 id="_1">基于多年云平台架构开发运维经验沉淀笔记<a class="headerlink" href="#_1" title="Permanent link">&para;</a></h1>
<h2 id="1-hadoop">1. Hadoop<a class="headerlink" href="#1-hadoop" title="Permanent link">&para;</a></h2>
<ul>
<li>
<p>1.1 <a href="../articles/hadoop/hadoop-hbase-production-troubleshooting/README_CN/">Hadoop/EMR 生产故障排查</a></p>
</li>
<li>
<p>1.2 <a href="../articles/hadoop/hadoop-custom-jvm-opts/README_CN/">自定义 NameNode Xmx 等参数</a></p>
</li>
<li>
<p>1.3 <a href="../articles/hadoop/hadoop-kafka-ops/README_CN/">Kafka 常规操作的姿势</a></p>
</li>
<li>
<p>1.4 <a href="../articles/hadoop/hadoop-kafka-offset-restore/README_CN/">生产环境 kafka 消费中断如何 offset 重放消费</a></p>
</li>
<li>
<p>1.5 <a href="../articles/hadoop/hadoop-zk-ops/README_CN/">Zookeeper 生产集群维护</a></p>
</li>
<li>
<p>1.6 <a href="../articles/hadoop/hadoop-aliyun-emr-hbase-cli-problem/README_CN/">阿里 EMR3.2 Hbase 客户端 BUG</a></p>
</li>
<li>
<p>1.7 <a href="../articles/hadoop/hadoop-aliyun-emr-cluster-migration-problem/README_CN/">生产环境阿里 EMR(Hbase1.2+Phoenix4.10)夸集群数据迁移采坑实录</a></p>
</li>
<li>
<p>1.8 <a href="../articles/hadoop/hadoop-add-remove-nodes/README_CN/">Hadoop 集动态添加或删除节点</a></p>
</li>
<li>
<p>1.9 <a href="../articles/hadoop/emr-production-deployment/README_CN/">基于 Apache Hadoop 大数据平台生产部署（原汁原味）</a></p>
</li>
<li>
<p>1.10 <a href="../articles/hadoop/hadoop-hbase-perf-optimization/README_CN/">HBase 生产集群性能调优之路</a></p>
</li>
<li>
<p>1.11 <a href="../articles/hadoop/spark-perf-optimization/README_CN/">Spark 生产集群性能调优之路</a></p>
</li>
<li>
<p>1.12 <a href="../articles/hadoop/hadoop-kafka-monitoring-optimization/README_CN/">Kafka 生产集群监控调优之路</a></p>
</li>
<li>
<p>1.13 <a href="../articles/hadoop/emqx-production-deployment/README_CN/">EMQx 生产集群部署</a></p>
</li>
<li>
<p>1.14 <a href="../articles/hadoop/cdh6.3.1-production-deployment/README_CN/">基于 CDH 6 大数据平台生产部署</a></p>
</li>
<li>
<p>1.15 <a href="../articles/hadoop/kafka-manager-deploy/README_CN/">快速部署之 cmak / kafka-manager</a></p>
</li>
</ul>
<h2 id="2-kubernetes">2. Kubernetes<a class="headerlink" href="#2-kubernetes" title="Permanent link">&para;</a></h2>
<ul>
<li>
<p>2.1 <a href="../articles/kubernetes/etcd-vscode-and-production-install/README_CN/">Etcd + VScode 源码调试 + 生产部署</a></p>
</li>
<li>
<p>2.2 <a href="../articles/kubernetes/coredns-vscode-and-production-deploy/README_CN/">CoreDNS + VScode 开发搭建(自定义插件)及生产部署</a></p>
</li>
<li>
<p>2.3 <a href="../articles/kubernetes/crio-compile-deploy/README_CN/">Kubernetes 之 cri-o(v1.21.0) 服务安装</a></p>
</li>
<li>
<p>2.4 <a href="../articles/kubernetes/kubernetes-offline-binary-production-deployment/">Kubernetes 离线二进制生产部署</a></p>
</li>
<li>
<p>2.5 <a href="../articles/kubernetes/docker-static-binary-install/README_CN/">Docker 离线二进制生产部署</a></p>
</li>
<li>
<p>2.6 <a href="../articles/kubernetes/docker-install-wordpress/README_CN/">Wordpress 基于 docker 快速部署</a></p>
</li>
<li>
<p>2.7 <a href="../articles/kubernetes/docker-deploy-gitlab/README_CN/">Docker 快速部署 Gitlab</a></p>
</li>
<li>
<p>2.8 <a href="../articles/kubernetes/docker-containerd-runc-circtl-cgroup-namespaces/README_CN/">docker containerd runc ctr circtl cgroups namespaces 原理及生产运维</a></p>
</li>
<li>
<p>2.9 <a href="../articles/kubernetes/k8s-app-local-devel-by-minikube/README_CN/">Minikube 搭建 K8S 应用本地开发调试环境</a></p>
</li>
<li>
<p>2.10 <a href="../articles/kubernetes/k8s-app-local-devel-by-kind/README_CN/">Kind 搭建 K8S 应用本地开发调试环境</a></p>
</li>
<li>
<p>2.11 <a href="../articles/kubernetes/jdk-containerized-bug/README_CN/">Java Spring 应用在 kubernetes 环境下 JDK 内存配置采坑</a></p>
</li>
<li>
<p>2.12 <a href="../articles/kubernetes/daily-operation-manager-tools/README_CN/">Kubernetes 生产运维之日常管理工具</a></p>
</li>
<li>
<p>2.13 <a href="../articles/kubernetes/nexus3-docker-registry-deploy/README_CN/">基于 nexus3+minio/s3 搭建 docker/helm 镜像仓库</a></p>
</li>
<li>
<p>2.14 <a href="../articles/kubernetes/container-image-repo-speedup/README_CN/">容器化部署之 image mirror 加速方案</a></p>
</li>
<li>
<p>2.15 <a href="../articles/kubernetes/arthas-attach-pod-jvm-failed/README_CN/">arthas 之 attach kubernetes Pod 中 JVM 失败解决</a></p>
</li>
</ul>
<h2 id="3-database">3. Database<a class="headerlink" href="#3-database" title="Permanent link">&para;</a></h2>
<ul>
<li>
<p>3.1 <a href="../articles/database/hosts-mysql-mgr-deployment/mysql-mgr-single-multi-primary_CN/">基于主机离线部署 MySQL MGR 高可用生产集群</a></p>
</li>
<li>
<p>3.2 <a href="../articles/database/docker-mysql-mgr-simple-deployment/README_CN/">基于 Docker 部署 MySQL MGR 高可用集群</a></p>
</li>
<li>
<p>3.3 <a href="../articles/database/mysql-single-deploy/README_CN/">MySQL 离线单机部署</a></p>
</li>
<li>
<p>3.4 <a href="../articles/database/haproxy-keepalived-shardingproxy-mysql-mgr/README_CN/">MYSQL MGR + SHARDINGPROXY + KEEPALIVED + HAPROXY + MYSQLD_EXPORTER 高可用企业级生产部署</a></p>
</li>
<li>
<p>3.5 <a href="../articles/database/redis-cluster-deploy/README_CN/">Redis Cluster 离线快速部署</a></p>
</li>
</ul>
<h2 id="4-operation-os">4. Operation (OS)<a class="headerlink" href="#4-operation-os" title="Permanent link">&para;</a></h2>
<ul>
<li>
<p>4.1 <a href="../articles/operation/shell-concurrent-queue/README_CN/">Linux shell 实现队列并发任务</a></p>
</li>
<li>
<p>4.2 <a href="../articles/operation/shell-general-account-manage/README_CN/">Shell 账号日常管理</a></p>
</li>
<li>
<p>4.3 <a href="../articles/operation/journal-log-cleanup/README_CN/">Linux journal 日志过清理</a></p>
</li>
<li>
<p>4.4 <a href="../articles/operation/cloudflare-cfssl-install-and-usage/README_CN/">Cfssl 生成企业级证书</a></p>
</li>
<li>
<p>4.5 <a href="../articles/operation/ubuntu-custom-dns-ever/README_CN/">Ubuntu20 自定义 DNS 永久生效</a></p>
</li>
<li>
<p>4.6 <a href="../articles/operation/linux-ntpd-chrony-setting/README_CN/">基于 ntpd / chrony 的 Linux 生产时钟管理</a></p>
</li>
<li>
<p>4.7 <a href="../articles/operation/linux-production-sysctl-optimize/README_CN/">Linux 生产内核网络参数调优分析</a></p>
</li>
<li>
<p>4.8 <a href="../articles/operation/centos7-hot-growdisk/README_CN/">以阿里 ECS CentOS7 为例磁盘在线扩容</a></p>
</li>
<li>
<p>4.9 <a href="../articles/operation/linux-production-disk-manage/README_CN/">Linux 生产运维操作之磁盘管理</a></p>
</li>
<li>
<p>4.10 <a href="../articles/operation/cgroups-in-k8s-docker/README_CN/">关于 k8s/docker/containerd / runc / ctr / cgroups/namespaces 生产运维实操</a></p>
</li>
<li>
<p>4.11 <a href="../articles/operation/prometheus-grafana-node_exporter-host-deployment/README_CN/">Prometheus + Grafana + node_exporter + Alertmanager 快速主机部署</a></p>
</li>
<li>
<p>4.12 <a href="../articles/operation/shell-vim-advanced-setting/README_CN/">Shell 和 Vim(vi) 高级玩儿法设置</a></p>
</li>
<li>
<p>4.13 <a href="../articles/operation/win10-to-ubuntu-dual-installation-by-rufus/README_CN/">Dell 工作本 Win10 + Ubuntu19.10 双系统采坑之路 (使用 rufus)</a></p>
</li>
<li>
<p>4.14 <a href="../articles/operation/win10-to-ubuntu-dual-installation-by-UltraISO/README_CN/">Dell 工作本 Win10 + Ubuntu16.04 双系统采坑之路 (使用 UltraISO)</a></p>
</li>
<li>
<p>4.15 <a href="../articles/operation/juicefs-production-deployment/README_CN/">JuiceFS 生产集群部署</a></p>
</li>
<li>
<p>4.16 <a href="../articles/operation/shell-print-ascii-color/README_CN/">SHELL 开发 NICE 工具之 ASCII COLOR 彩色输出</a></p>
</li>
<li>
<p>4.17 <a href="../articles/operation/socks-shell-http-proxy/README_CN/">Linux 搭建基于 socks + privoxy 代理终端</a></p>
</li>
<li>
<p>4.18 <a href="../articles/operation/git-cherry-pick-amend-usage/README_CN/">大型团队协作之 git cherry-pick / amend</a></p>
</li>
<li>
<p>4.19 <a href="../articles/operation/git-team-commands/README_CN/">Git 分布式研发团队操作姿势</a></p>
</li>
<li>
<p>4.20 <a href="../articles/operation/centos7-upgrade-kernel-5.x/README_CN/">CentOS 7 升级 Linux kernel 5.x</a></p>
</li>
<li>
<p>4.21 <a href="../articles/operation/wireguard-vpn-deploy/README_CN/">新一代高性能 Full Connects VPN 服务 WireGuard 快速部署</a></p>
</li>
<li>
<p>4.22 <a href="../articles/operation/devel-golang-projects/README_CN/">golang 工程构建基础</a></p>
</li>
<li>
<p>4.23 <a href="../articles/operation/linux-veth-bridge-tap-tun/README_CN/">Linux 虚拟网卡网桥操作</a></p>
</li>
<li>
<p>4.24 <a href="../articles/operation/ipsec-vpn-deploy/README_CN/">异地组网之 IPSec VPN 快速部署</a></p>
</li>
<li>
<p>4.25 <a href="../articles/operation/openvpn-deploy/README_CN/">异地组网之 OpenVPN 快速部署</a></p>
</li>
<li>
<p>4.26 <a href="../articles/operation/using-acme.sh-auto-issue-certs/README_CN/">使用 acme.sh 自动签发续期 Let's encrypt Free 证书</a></p>
</li>
<li>
<p>4.27 <a href="../articles/operation/centos8-upgrade-to-centos-stream/README_CN/">CentOS 8 如何升级为 CentOS Stream</a></p>
</li>
<li>
<p>4.28 <a href="../articles/operation/deploy-gitea/README_CN/">快速部署轻量级 git 测试环境 - gitea</a></p>
</li>
<li>
<p>4.29 <a href="../articles/operation/swap-configure-linux/README_CN/">swap 配置解决 Linux 内存不够用</a></p>
</li>
<li>
<p>4.30 <a href="../articles/operation/pptp-vpn-deploy/README_CN/">异地组网之 PPTP 快速部署 (ubuntu 20.04+pptpd+pptp-linux+win10)</a></p>
</li>
<li>
<p>4.31 <a href="../articles/operation/ipvs-multi-mode-deploy/README_CN/">部署 IPVS 高可用软 LB 集群</a></p>
</li>
<li>
<p>4.32 <a href="../articles/operation/git-reset-hard-restore/README_CN/">git reset --hard 后本地代码找回</a></p>
</li>
<li>
<p>4.33 <a href="../articles/operation/configure-github-action-release-maven-central/README_CN/">如何配置 github action 自动构建发布到 maven central</a></p>
</li>
</ul>
<h2 id="5-spring-jvm">5. Spring &amp; JVM<a class="headerlink" href="#5-spring-jvm" title="Permanent link">&para;</a></h2>
<ul>
<li>
<p>5.1 <a href="../articles/spring-jvm/spring-cloud-gateway-filters-ordered/README_CN/">Spring Cloud Gateway Filters 执行顺序分析</a></p>
</li>
<li>
<p>5.2 <a href="../articles/spring-jvm/graalvm-springboot/README_CN/">GraalVM + SpringBoot 案例</a></p>
</li>
<li>
<p>5.3 <a href="../articles/spring-jvm/spring-cloud-gateway-limiter-redis-lua/README_CN/">Spring gateway redis-lua 令牌桶限流算法解读</a></p>
</li>
</ul>
<h2 id="6-testing">6. Testing<a class="headerlink" href="#6-testing" title="Permanent link">&para;</a></h2>
<p>TODO</p>
<h2 id="7-frontend">7. Frontend<a class="headerlink" href="#7-frontend" title="Permanent link">&para;</a></h2>
<p>TODO</p>
<h2 id="8-blockchain">8. Blockchain<a class="headerlink" href="#8-blockchain" title="Permanent link">&para;</a></h2>
<p>TODO</p>
<h2 id="9-machine-learning">9. Machine Learning<a class="headerlink" href="#9-machine-learning" title="Permanent link">&para;</a></h2>
<p>TODO</p>
<h2 id="10-others">10. Others<a class="headerlink" href="#10-others" title="Permanent link">&para;</a></h2>
<ul>
<li>
<p>10.1 <a href="../articles/other/deploy-maven-central/README_CN/">Deploy Maven Central</a></p>
</li>
<li>
<p>10.2 <a href="../articles/other/ubuntu-deepin-wechat-errcoding/README_CN/">Deepin wechat 中文乱码解决方案 Ubuntu18.04</a></p>
</li>
<li>
<p>10.3 <a href="../articles/other/maven.checkstyle-eclipse-error/README_CN/">Maven Checkstyle Eclipse 下报错解决</a></p>
</li>
<li>
<p>10.4 <a href="../articles/other/dual-os-installation-win10%2Bubuntu/README_CN/">新工作本(dell)之安装 Win10 + Ubuntu20 双系统</a></p>
</li>
<li>
<p>10.5 <a href="../articles/other/ubuntu-replace-dock-plank/README_CN/">Ubuntu20 使用 plank 替代默认 dock 方案实现 Mac 效果</a></p>
</li>
<li>
<p>10.6 <a href="../articles/other/umami-replace-google-analytic/README_CN/">使用开源 umami 替代 Google Analytic 站点分析</a></p>
</li>
<li>
<p>10.7 <a href="../articles/other/upgrade-to-eclipse-2022-09-R-ctrl-1-rename-not-working/README_CN/">升级到 eclipse-jee-2022-09-R-xxx(lombok-1.18.22) 后 ctrl+1 重命名快捷键不工作</a></p>
</li>
</ul>
<blockquote>
<p>由于历史原因，更早历史文章请参考<a href="https://www.jianshu.com/u/5a7247c9a28a">我的简书: https://www.jianshu.com/u/5a7247c9a28a</a></p>
</blockquote>

              
            </article>
          </div>
        </div>
        
      </main>
      
        <footer class="md-footer">
  
  <div class="md-footer-meta md-typeset">
    <div class="md-footer-meta__inner md-grid">
      <div class="md-copyright">
  
  
    Made with
    <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
      Material for MkDocs
    </a>
  
</div>
      
    </div>
  </div>
</footer>
      
    </div>
    <div class="md-dialog" data-md-component="dialog">
      <div class="md-dialog__inner md-typeset"></div>
    </div>
    <script id="__config" type="application/json">{"base": "..", "features": ["search.suggest", "search.highlight", "navigation.tabs", "navigation.expand", "toc.follow", "toc.integrate"], "search": "../assets/javascripts/workers/search.5e67fbfe.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}, "version": {"default": "latest", "provider": "mike"}}</script>
    
    
      <script src="../assets/javascripts/bundle.c44cc438.min.js"></script>
      
        <script src="../static/js/util.js"></script>
      
    
  </body>
</html>